Enterprise-class data storage systems differ from consumer-class storage systems primarily in their requirements for reliability. For example, a feature commonly desired for enterprise-class storage systems is that the storage system should not lose data or stop serving data in circumstances that fall short of a complete disaster. To fulfill these requirements, such storage systems are generally constructed from customized, very reliable, hot-swappable hardware components. Their firmware, including the operating system, is typically built from the ground up. Designing and building the hardware components is time-consuming and expensive, and this, coupled with relatively low manufacturing volumes is a major factor in the typically high prices of such storage systems. Another disadvantage to such systems is lack of scalability of a single system. Customers typically pay a high up-front cost for even a minimum disk array configuration, yet a single system can support only a finite capacity and performance. Customers may exceed these limits, resulting in poorly performing systems or having to purchase multiple systems, both of which increase management costs.
It has been proposed to increase the fault tolerance of off-the-shelf or commodity storage system components through the use of data replication. However, this solution requires coordinated operation of the redundant components and synchronization of the replicated data.
Therefore, what is needed are improved techniques for storage environments in which redundant devices are provided or in which data is replicated. It is toward this end that the present invention is directed.